/*
*	Copyright (C) 2014  Julio Montes, Mario Carrillo
*	
*	Julio Montes e-mail: imc.coder@gmail.com 
*
*	Mario Carrillo e-mail: mario_90ago@live.com.mx
*
*	BSD 3-Clause License
*/

#ifndef SDK_CFGMGR_H
#define SDK_CFGMGR_H

#include "sdk/include/mgr.h"

#include <map>
#include <wx/wx.h>

namespace sdk
{
    class FileConfig;

    class ConfigManager : public sdk::Mgr<ConfigManager>
    {
        friend class sdk::Mgr<ConfigManager>;
    public:
        /**
        * @brief Return a pointer to configuration file specified by @a filename parameter
        *
        * If the file has not loaded, load the file in a @ref ecFileConfig object and save this object
        * to future calls
        *
        * @param filename file to get
        *
        * @return a pointer to a configuration file
        */
        sdk::FileConfig *GetFile( const wxString &filename );
    protected:
    private:
        ConfigManager();
        virtual ~ConfigManager();

        std::map<wxString,sdk::FileConfig *> m_configFiles;

    };
}

#endif // SDK_CFGMGR_H
